#include "myFunctions.h"
#include <algorithm>
#include <climits>
# include <math.h>
#include <time.h>
#include <limits.h>

using namespace std;

struct neuron{
	vector<double> w;
};	


class Hopfield{
private:
	vector<vector<double> > W;				/**< vector de Neuronas	(cada una solo se representa por su set de pesos)**/
	int N; 									/**< numero de entradas y de neuronas (coincidentes)	**/
	vector<int> y;							/**< vector de salidas de cada neurona **/
	int maxIt;								/**< maximo de iteraciones en recuperación **/
	int numEstables;						/**< Numero de iteraciones para considerar estabilidad **/				
	void loadConfig(string file);
public:
	Hopfield();
	Hopfield(Hopfield* H);
	Hopfield(string file);
	void training(vector<vector<int> >& X);
	vector<int> output(vector<int> &x);	
};
